package com.check.utils;

import javafx.collections.FXCollections;
import javafx.scene.control.Label;
import javafx.scene.control.Pagination;
import javafx.scene.control.TableView;

/**
 * @author zyt
 */
public class TableWithPaginationAndSorting<T> {
    private Page<T> page;
    private TableView<T> tableView;
    private Pagination pagination;


    public TableWithPaginationAndSorting(Page<T> page, TableView<T> tableView, Pagination pagination) {
        this.page = page;
        this.tableView = tableView;
        this.pagination = pagination;
        this.pagination.pageCountProperty().bindBidirectional(page.totalPageProperty());
        updatePagination();
    }

    private void updatePagination() {
        pagination.setPageFactory(pageIndex -> {
            tableView.setItems(FXCollections.observableList(page.getCurrentPageDataList(pageIndex)));
            return new Label();
        });

    }
}